package chapter_23.manager;

/**
 * 等待线程结束(join() 方法)
 */
public class Thread_Join {

    // 共享变量
    static int value = 0;

    public static void main(String[] args) {

        System.out.println("主线程 开始...");

        // 创建线程thread,参数是一个线程执行对象Runner
        Thread thread = new Thread(() ->{
            System.out.println("子线程 开始...");

            for(int i = 0; i < 2; i++){
                System.out.println("子线程 执行...");
                value++;
            }

            System.out.println("子线程 结束...");
        });

        // 开始线程 thread
        thread.start();
        // 主线程被阻塞,等待 thread 线程结束
        try {
            /*
             此处需要等待子线程 thread 执行结束后
             才继续运行后面的程序
             *若注释此部分,则主线程会优先执行完毕*
             */
            thread.join();
        }catch (InterruptedException e){
            System.out.println("线程执行异常!");
        }

        System.out.println("value = " + value);

        System.out.println("主线程 结束...");

    }

}
